package org.example.service;

import org.example.model.Questionnaire;
import org.example.model.UserResponse;

import java.util.List;

public interface QuestionnaireService {
    
    /**
     * 创建问卷
     */
    Questionnaire createQuestionnaire(Questionnaire questionnaire);
    
    /**
     * 获取所有活跃的问卷
     */
    List<Questionnaire> getAllQuestionnaires();
    
    /**
     * 根据ID获取问卷（包含问题和选项）
     */
    Questionnaire getQuestionnaireById(Long id);
    
    /**
     * 保存用户的问卷回答
     */
    UserResponse saveUserResponse(UserResponse userResponse);
    
    /**
     * 获取用户的所有问卷回答
     */
    List<UserResponse> getUserResponses(Long userId);
    
    /**
     * 删除问卷及其关联的问题和选项
     * @param id 问卷ID
     */
    void deleteQuestionnaire(Long id);
    
    /**
     * 更新问卷及其关联的问题和选项
     * @param questionnaire 更新后的问卷对象
     * @return 更新后的问卷对象
     */
    Questionnaire updateQuestionnaire(Questionnaire questionnaire);
} 